- web6047 - (2021/09/10(金) 現在、システム調整中のため、一部の表示がおかしいかもしれません)

there is no canvas.

web6047 2020 8

プログラミングやRPG(作るほう)が好きな人の日記


このホームページは毎日 夜11時にアクセスできなくなります。

朝6時半に再開されます。(世の中のネット依存対策として)

例外で、アクセスができる場合があります。aboutThisWebsite を参照してください。

NO PC WEEK に代わる PC 使用制限のしくみ(β版)
No. A.(ついでに
勉強1問)
B. PC使用
開始時刻
C. 予定使用時間 時間:分
(当日限度時間 時間:分)
D. 予定終了時刻 E. 実際終了時刻 F. 実際使用時間 時間:分
(当日限度時間 時間:分)
オーバー理由
G. 判定 H. 作業内容
170 11:10 1:00(3:00) 12:10 12:25 1:15(3:00) 8月扉スクリプト
169 19:45 1:00(3:00) 20:45 21:17 1:32(3:00)
当初のイメージを求めた
× 8月扉スクリプト
168 14:10 1:00(3:00) 15:10 15:35 1:25(3:00) 8月扉スクリプト
167 11:50 1:00(3:00) 12:50 13:14 1:24(3:00) 8月扉スクリプト
166 23:45 1:00(2:00) 0:45 1:18 1:33(2:00)
デバッグできず
× 8月扉スクリプト
165 22:00 1:00(2:00) 23:00 23:14 1:14(2:00) 8月扉スクリプト
164 20:50 1:00(2:00) 21:50 22:05 1:15(2:00) 8月扉スクリプト
163 18:55 1:00(2:00) 19:55 20:08 1:13(2:00) 8月扉スクリプト
162 21:25 1:00(2:00) 22:25 23:00 1:35(2:00)
おもしろすぎたから
× 8月扉スクリプト
161 19:00 1:00(2:00) 20:00 20:11 1:11(2:00) 8月扉スクリプト
160 19:05 1:30(3:00) 20:35 20:47 1:42(3:00) 8月扉スクリプト
159 15:45 1:30(3:00) 17:15 17:25 1:40(3:00) 8月扉スクリプト
158 22:20 1:30(3:00) 23:50 0:14 1:54(3:00) 8月扉スクリプト
157 19:30 1:30(3:00) 21:00 21:05 1:35(3:00) 8月扉スクリプト
156 21:25 1:00(2:00) 22:25 22:38 1:13(2:00) 8月扉スクリプト
155 18:40 1:00(2:00) 19:40 19:46 1:06(2:00) 8月扉スクリプト
154 20:25 1:00(2:00) 21:25 21:42 1:17(2:00) 8月扉スクリプト
153 18:15 1:00(2:00) 19:15 19:22 1:07(2:00) 8月扉スクリプト
152 22:39 1:00(2:00) 23:39 23:45 1:06(2:00) RPG試作
151 18:35 1:00(2:00) 19:35 19:41 1:06(2:00) RPG試作
150 21:15 1:30(1:30) 22:45 23:05 1:50(1:30) RPG試作
この表に記録していない作業あり: 長時間 記事作成
149 21:45 1:00(1:30) 22:45 22:48 1:03(1:30) RPG試作
148 20:10 0:30(1:30) 20:40 20:42 0:32(1:30) RPG試作
147 22:30 1:30(1:30) 0:00 0:10 1:40(1:30) RPG試作
146 22:10 2:00(2:00) 0:10 0:23 2:13(2:00) RPG試作
145 22:20 1:30(1:30) 23:50 23:52 1:32(1:30) RPG試作
この表に記録していない作業あり: 長時間 アセンブラ学習用の小型液晶準備と、記事作成
144 20:35 1:30(3:00) 22:05 22:02 1:27(3:00) RPG試作
143 16:20 1:30(4:00) 17:50 17:50 1:30(4:00) 調べもの
142 21:30 1:30(1:30) 23:00 23:05 1:35(1:30) RPG試作
141 19:30 1:30(1:30) 21:00 21:07 1:37(1:30) RPG試作
140 20:55 2:00(4:00) 22:55 23:05 2:10(4:00) RPG試作
139 16:00 1:00(4:00) 17:00 17:03 1:03(4:00) トップページ
138 10:45 1:00(4:00) 11:45 11:51 1:06(4:00) トップページ

この表の意図:

多くの人はパソコンのやりすぎやネットゲームのやりすぎには困っていると思います。

参考に言うと、この表を使う前の私は 1 回の PC 使用時間がノンストップで 17 時間というときもあったし、平均で言うと毎日 9 時間はやっていたと思います。

そういう徹夜とか長時間作業をするよりも、昼間の短時間作業のほうが生産性は高いのでは? と数年前から考えてきました。

パソコンの使用時間を事前に決めてネット上に公開することで、パソコンのやりすぎを防止できるかどうかこの表を使って試しています。


記入の法則:

  • 日付は表示していません。しかし、白と灰色の色分けは、同じ色の連続で同じ日を表しています。
  • 左端の「A. (ついでに勉強1問)」について
    この表の目的とは異なりますが、ついでとして、遊び100%の毎日を送るときでも勉強の習慣を忘れないために、たった1問で良いので解くことにします。
    正直言うと毎回遊ぶ前に必ず1問勉強するのは心が折れそうです。でも慣れさえすれば…と思います。追記:やってみると結構効果的で役立っています。
    行ったら◎、行わなかったら× を記入。
  • 右端の「判定」について
    「D. 予定終了時刻」と「E. 実際終了時刻」を比べて、オーバーした時間によって判定を行う。
    ◎ 9分以下
    ○ 10分~19分
    △ 20分~29分
    × 30分以上 (オーバー理由を記載する)
  • 平日1.5h、2.0hのPC使用の連続が負担になっているので、「平日のPC使用は月水金のみ」とする。火木でPC使用しないことでうまいぐあいに「体力回復」されて、「生活」がうまく回り、プログラミング以外の「創作活動」(イラスト等)に時間が取れることを期待する。


例外事項:

  • 「E. 実際終了時刻」のあと、プログラミングの場合のみスッパリ終了しないで、今後のプログラミングの方針をテキストファイルに書くのは OK にしています。

廃止事項:

以下の事項は実施できないので廃止する。

  • 自分のホームページやプログラムを読んでいて誤字脱字を発見した際、その「修正」は訪問者にとっても管理人にとっても有益なので、「タイマーで測って10分未満。1点修正したら終了」を条件に作業してよい。また、基本的にそれを連続させないこと。


中途結果:

結構いい結果になっています。炊事や掃除、散歩、早起きなどが好ましいリズムでできるようになりました。

(2020年9月6日追記:散歩、早起きは最近あまりできていません。掃除や炊事は理想的にできています)

この取り組みが、15才~18才くらいまでの高専(中退)に所属していた時に実施できていたら良かっただろうなと思います。でもそれくらいの年齢では経験が浅く、このような効果的なルール作りを行うことはできなかったと思います。自分は人に比べて「創作意欲」や「ゲームで遊ぶ欲望」におぼれやすいところがあり、そのコントロールはとても難しいです。

ちなみに、分単位で記録を取ったりして、だいぶマメに見えるかもしれませんが、Windows の日本語入力(MS-IME)で「いま」と入力し、 変換 キーを押さずに ボタンを押すと現在の時刻になります。道具の便利さが人をマメに見せるのかもしれません。


2020/8/28(金)

修正 -[season]

8/19 の日記の、「お盆休みの成果」という話題で、海水浴場の混雑状況について、

去年の様子はこちらです。

というリンクを設置しましたが、そのリンク先がおかしかったのを直しました。


2020/8/23(日)

記事の作り方を制限 -[no_pc]

日ごろからこのウェブページの記事作成において、長文のために時間がかかりすぎて体力も消耗して困るので、試験的に「記事の作り方を制限」してみます。

訪問者の方もあんまり長文ばかりだと読めないでしょうし…。

長文でなければ表現できない内容もあると思いますが、とりあえず以下のような制限のもと、記事作成してみたいと思います。

ツイッターが全角140文字という制限の中でコミュニケーションされているので、それと同じように、この制限の中で記事を表現できればと思います。

でも、下の「女性の名を表計算から導く」の記事のように(私が勝手に思っているだけかもしれませんが)、「懇切丁寧に記事を作成して初めて読み手は理解できる」というのもあるので、どこまでできるか、ほんとに試験的なこころみです。


1)5W1Hを表す文章

2)記事の主要コンテンツ(画像、プログラム、写真)

3)説明文 3行まで(お店のポップは基本的に4行以上は読まないという経験から)

4)手順を示すリスト(結果にたどり着けば良いのであって、意味や余計な説明は書かない)

  1. 手順
  2. 手順
  3. 手順

5)必要なもの等を示すリスト(必要なものが用意されれば良いのであって、同じく余計なものを書かない)

6)注意点数行

※息抜き的な挿絵を入れたい場合はその記事とは別に時間を取って作図する。




なんでもいいけど、あんた
制限するの好きねぇ…


2020/8/22(土)

女性の名を表計算から導く -[rpg]

電子機器組み立て1級の学科の復習をしていて「テルル化ビスマス(Bi2Te3)」という半導体素材の名前が出てきました。

この「テルル」というのが女性の可愛らしい名前に思えて、そういえば「アルル」ってあったよなと連想されました。(ぷよぷよ)

テなのかアなのかという違いで、そこを変えれば他にもありそうです。


RPG でも小説でも何でも、架空の人の名前を考えるのって大変ですよね。

今回はその近道のお話をします。

以前にも同じような話をしたことがあります。

「暗黒城の」+「魔術師」=「暗黒城の魔術師」ならば、

前を切り替えて、「悠久の」+「魔術師」、「地下迷宮の」+「魔術師」、「時空の」+「魔術師」、

後を切り替えて、「暗黒城の」+「戦士」、「暗黒城の」+「姫」、「暗黒城の」+「使用人」、

などなど、表計算でいろいろ出てきますよ、という話でした。(記事はハプニングで消えました)

そうやって名前を導き出すと、インスピレーションを与えられます。

地下迷宮の魔術師? いそうですねぇ…。 地下の奥深くで何をやっているんだ?

暗黒城の姫? どんな姫ですか?? 過去に捕らわれたけど住めば都で住み着いたとか? などなど。

「形容詞」+「名詞」の組み合わせ次第で、いろいろな印象の言葉ができ、想像力を働かせることができます。


今回はそれを「女性の名の構成」でやってみましょう。

表の左端(下表ピンクの列)に名前の前半を並べ、表の上端(下表オレンジの行)に名前の後半を並べて、各セルには前半と後半をつなげた文字を表示するようにします。すると網羅的に名前を作成することができます。

使えない名前が多い中、使えそうな名前をちらほらと見つけることができます。

それは聞いたことのある名前の場合もあれば、いまだかつて聞いたことのない良い名前の場合もあります。

その名前を自分の創作のキャラに名付けたら…と想像して使えるかどうか具合を確かめてみます。


…表計算ってクリエイティブですね。

これは Microsoft Excel で行いましたが、確認したところ無料の Libre Office でもできたので、興味のある人は Libre Office でやってみてください。


簡単に表を作るには

  1. 表計算ソフトを起動します。
  2. セルB9に「前」の文字列として「ア」を記入し、続けて下に「イ」、その下に「ウ」など、3つくらい記入します。
  3. 次に、セルC8に「後」の文字列として「ルル」を記入し、続けて右に「ルダ」、その右に「リス」など、3つくらい記入します。
  4. そしてC9セルに計算式「=$B9&C$8」を記入。
  5. すると「アルル」と出ますね。
  6. その「アルル」と出た C9セルを他の空欄のセルへ次々と コピペ すればOKです。

できましたか?


この状態から 右 に増やしたい

  1. F8セルに「ニス」と入れます。
  2. 表内のどのセルでも良いのでセルをコピーします。
  3. F9セルに貼り付けします。
    すると「アニス」と出ますね。ありそうな名前ですね。
  4. そのまま空欄のセルへ貼り付けします。

右に増やすことができました。


この状態から 下 に増やしたい

  1. B12セルに「ナコ」と入れます。
  2. 表内のどのセルでも良いのでセルをコピーします。
  3. C12セルに貼り付けします。
    すると「ナコルル」と出ますね。
  4. そのまま空欄のセルへ貼り付けします。

下に増やすことができました。


最後に、簡単に装飾して、このように完成!


すでに世にある名前を分割して使う

電子機器組み立ての勉強では、テルルの他に、セレン(Se)という名前も出てきます。

この名前を適当に「セ」と「レン」に分割して、表の左端と上端に記入し、アレン、イレン、ウレン、カレン、キレン、クレンなどなど見つけていきます。

「セ」と「レン」ではなく、「セレ」と「ン」に分ければまた別の組み合わせが出現するので、その辺は自由に分割します。

「セレ」と「ン」に分けた場合、すでにある「ア」と新しい「ン」で「アン」が出現します。

その「アン」と何かがくっつきそうだと思ったら、アンを左端に追加してみます。

そのときもし上端に「ナ」があれば、「アンナ」が出てきます。

このように、表の左端と上端に入れる文字に迷ったら、すでに世にある名前を自由に分割して記入してみましょう。

出現した名前もさらに何かとくっつくので試してみましょう。

(アンナを上端に入れると、「ジョアンナ」とか「ポリアンナ」とか…、つきないですね)


その調子で遊べると思うので、やってみてください。

今回の表で表現したのはごく一部だと思います。「ファ」とか「ルナ」とか他にもいっぱいあります。


要領を得たら、地名も作れそうですね。

「アレフガルド」をもとにして「ムーンガルド」「ムーンバーグ」、実在の「バイエルン」や「ミュンヘン」を分割して、くっつけて「バイヘン」「ミュン・エルン」。

創作する際に無から名前を考え出すのが苦手な人はこの方法を使ってみてください。


使用時の注意点(重要)

データを縦横に並べて、その組み合わせをまんべんなく見渡す。。見渡すと良いものが見つかる。

この「データを鳥瞰して網羅し、良いものを算出する」というやり方、どこかで見たことありませんか?

人に代わって、一番良いアイデアを提案する――― AI ?

AI も過去の多くのデータを網羅して、そのデータの傾向を導き出して、人間が欲しい「一番いい提案」、「グッドアイデア(だっけ?)」を出力してくれます。

今回紹介した表計算はごく単純な方法ではあるものの、はやりの AI と似ているんじゃないかと思うんです。


人が頑張って考えた名前を、この表計算はいとも簡単に作り出してしまう!

人が頑張って習得した技術を、AI はいとも簡単にこなしてしまう!

AIに対して抱く、人の肯定的な気持ちと、否定的な気持ちが、この表計算にも当てはまる気がするんです。


このやり方は必ずしも、見せられた人が喜ぶとは限らないということを、注意点として覚えておいてください。

将棋においても、コンピューターでパターンを網羅するというのは羽生さんが実現して以来、新しい時代の流れとして受け入れられてきたと思いますが、そういうやり方をいまだに否定的に感じる人もいるんじゃないかと思います。

「コンピューターでの網羅」を人々が認知し認めている業界と、まだそうなっていない、またはこれからもそうならない業界という3つくらいの違いがあると思います。

AI という技術に多くの人が喜んでいると同時に少し戸惑ってもいる(仕事を奪われるから)という現状を注意深く観察しましょう。


今回紹介した表計算は、一人でちょっと遊ぶ程度に遊んでほしいと思います。



この表計算の説明(少し難しい)

この表の各セルは、

=$B9&C$8

※この計算式は Excel でも LibreOffice でも動きました。

という計算で、"左端のセル + 上端のセル" という意味になっています。

「&」はセル同士を文字列としてつなげるという意味があります。

この B9 と C8 それぞれ固定したい部分に $ を付けることで、セルをコピーしたときにそこだけ固定する、という機能を付けられます。

その機能がない場合とある場合で説明しましょう。

その機能がない場合:

=B9&C8 とした場合は$がついていないのでその機能がありません。そのセルを斜め下にコピーすると、行が1つ進んで列も1つ進むので 、列を表すアルファベットが1つ進み、行を表す数字も1つ進んで C10&D9となります。例の表で行うと「イルルアルダ」となってしまいます。

その機能がある場合:

=$B9&C$8 とした場合は$が付いているのでその機能があります。そのセルを斜め下にコピーすると、機能がない場合のように C10&D9 とはならず、$B10&D$8 のように$が付いた部分(赤い部分)は変化せず、$が付いていない部分だけが変化します。例の表で行うと「イルダ」となり、意図した結果です。

こうすることで、表内のどのセルも、常に表の左端と上端を固定して参照してくれるようになります。

コピペをしてもその状態を維持してくれるので、いちいち計算式を作らなくても、どんどん貼り付け、貼り付け、でOKです。


なお、表の左端のピンク色の列は、ア、イ、ウ、エ、オが下に向かってダーっと網羅して並んでいます。

これを手で打ち込むのは大変なので、表のB9セルに

=CHAR(9506+ROW()-9)

と記入し、下へコピーすれば、アイウエオ…と(ァィゥの小文字を含みつつ)並んでくれます。

「ア」が文字コードで言うと9506なんです。行が増えるたびに1を足していけば、「ア」に続く文字が出るでしょう、というものです。

ROW()は行番号に置き換わります。B9セルは9なので、9-9=0で、文字コードはそのまま9506、文字は「ア」です。

B10セルは10なので、10-9=1で、文字コードは1足して9507、文字は「ィ」です。

CHAR()はもうわかると思いますが、その文字コードを文字に置き換えるものです。


また、表の上端のオレンジ色の行で、「CPYィ」というセルがありますが、そのセルの下のF9セルは、

=$B9&REPLACE(F$8,FIND("CPY",F$8),3,$B9)

※この計算式は Excel でも LibreOffice でも動きました。

このような計算になっていて、”左端の文字列 + 「CPYィ」のCPYという文字列を左端の文字列に置き換える” という意味です。

たとえば、左端が「ミ」ならば、左端の文字「ミ」と、CPYで左端の「ミ」がさらに入り、つづいて「ィ」で、「ミミィ」になります。

左端が「サ」で上端が「リCPY」ならば、左端の文字「サ」と、「リ」とCPYで左端「サ」が入り、「サリサ」となります。

そのとき左端が「ア」なら「アリア」です。「タリタ」「マリマ」「ルリル」など。

ただし、「ァホイCPYッCPY!」のような2回以上はできず、CPYは1回だけ使えます。(もしできるなら、左端が「サ」だとサァホイサッサ)

このセルを下へコピーしていくことでその列はそういう計算をしてくれます。

試す場合は、F8セルに「CPYィ」と記入し、F9セルに上記式を記入して、動きを確かめてください。

動いたらF9セルを下へコピーしていきます。

動かない場合は、なんで動かないのか調べていると大変になるので、あきらめましょう。


※表の上端のオレンジ色の行で、たとえば「ーニィ」とハイフンから入力したとき上手くいかないことがあるかもしれません。その時は「'ーニィ」として「-」が何か機能しないようにアポストロフィーを付けます。


(訪問者のどんなニーズと この記事がつながるか)


2020/8/19(水)

お盆休み結果 -[season]

連休中の成果

10日間のお盆休み中は、ほぼ毎日海へ出かけ、浜辺の様子をケータイで写真撮影しました。

海水浴場ですから、毎年人混みになりますが、今年はコロナウイルスの影響でどうだったんでしょうか?

去年の様子はこちらです。

8/7(金) 初日 朝7:24
朝なので誰もいません。


置き去りにされた散らばったキッズサンダル1組をきちんと並べて置いてやりました。
8/8(土) 2日目

この日は確か、歯医者に行って、家でメンチカツを食べていました。
8/9(日) 3日目 午前9:54
海水浴来てますねぇ…

でも、監視員がいないんです。
何かあったら、どうするの?
8/10(月) 4日目

アセンブラの勉強のための液晶表示の準備で、午後くらいから深夜0時まで奮闘していました。
液晶が表示できたときは、そうりゃあもう嬉しかったです。
8/11(火) 5日目 夕方18:12
夕方なので、人はまばらです。
8/12(水) 6日目 午前10:55
全部見えるようにナナメ撮り。
8/13(木) 7日目 正午12:00
浜辺とは反対方向へ歩きました。
8/14(金) 8日目 正午12:43
ピンぼけた。

この状態で、去年の1/3くらいです。
ほんとにいっぱいになるとこの浜辺はぎゅうぎゅうになります。
比較画像
2020年のほうはなんとなくソーシャルディスタンスを取っているように見えなくもない
8/15(土) 9日目 正午12:04
これも1/3くらいじゃないかなぁ。

車は多いけどね。写真に写っていないずっと奥にも駐車場が別途あり、たぶんそっちはガラガラだと思います。
8/16(日)最終日 夕方18:06
最終日で夕方ですからね。


なんという花か知りませんが、せっかくだからと撮影。
このケータイ、写真の写りがほんとに悪いンです。
そういうわけで、今年の海の 人の入りは去年に比べて1/3という感じでした。
せっかくの夏で、ずっと家にこもりきりで、もー我慢できんぞ!
っていう気持ちもわからないでもないです。
でも、監視員がずっといなかったようで、たいへん危険な状態だったと思います。
中には家族全員短パン姿で足だけ海に入る、という方々もいました。
監視員がいないから泳ぐのはやめて、浜辺をできるだけ楽しもうという策だったんでしょうか。それも良いですね。
風物詩のスイカ割りというのも子供に体験させてあげると良いんじゃないかな。


また、アセンブラの勉強も毎日行い、今では「人様が作った I2C 通信の C言語プログラムをアセンブラで作り直せばあの問題が解決できる…」などと検討することができるようになりました。

RPG のコマンドメニューのアルゴリズムも決まったし、さしみやちらし寿司を作ったりビールを飲む等 のんびりと過ごせました。

連休中に得られなかったもの(うまくいかなかったもの)

このように、なんでもうまくいっているわけではありません。


(訪問者のどんなニーズと この記事がつながるか)


2020/8/16(日) お盆休み10日目

RPG試作 メニューアルゴリズム -[rpg]

RPG の「コマンドメニュー」のアルゴリズムです。

考え抜いて、やっとで導き出した「かたち」なので、結構気に入っています。

今日はもうお盆休み終了で、時間がないので詳しい説明はできません。

以前紹介した「パレット」については、ある程度この中で生かされています。

簡単に言うと、

[1] 1つのことを実行する一連のメニューのうち「どうする? ~する」という動詞を決めるメニューだけにスクリプトを配置します。

[2] メニューを選び終えると、そのスクリプトを実行しますが、そのスクリプトの引数として、各メニューで決定した項目を渡します。

[3] それら引数は、「だれが」、「何を」、「使う」という、スクリプトの中で使いたい値なので、スクリプトで行いたいことをプログラムできます。

プログラムリスト

プログラムの試し方(キーボードが必要です):
  1. プログラムリストのリンク先の右上の青い「実行」ボタンを押すと真っ白い画面が表示されます。
  2. CTRL + SHIFT + J を押してコンソールを開きます。
    操作しやすいように、真っ白い画面を左、コンソールを右に配置していただきます。
  3. 真っ白い画面の中央をクリックしてウィンドウを最前面にします。するとコンソールは消去されて [キャンプ] と0,1のメニューが表示されます。
  4. キーボードで、メニューの番号と同じ番号キーを押すと、コンソール上でメニューが進みます。
    たとえば、キーボードで「0」キーを押すと、「だれの?」と、誰のどうぐを表示するのかというメニューが表示されます。
    テンキーだと反応しません。
    また、プログラムは不完全なので、なるべく「0」だけ押して、様子を見てください。
  5. メニューを最後まで選ぶと、選んだメニューの項目が一覧表示されます。(右にインデントされたテキストです)
    続いてスクリプトが実行されます。
    c1はなんこうを使った!
    c1のHPが30ポイントかいふくした!
    …と表示されます。これはどうぐ「なんこう」に設定された「かいふくスクリプト」の実行結果です。
    「なんこう」とは漢字で「軟膏」と書き、意味はオロナインなどの傷薬のことです。
  6. このスクリプトは「メニューで決めてきた項目」を引数にして実行されています。
    そのため、たどったメニューが異なれば、実行結果も変わります。


人が作ったプログラムは、説明がなければ、ほとんど読めないと思うので、今度説明出来たら…と思います。

まぁ、説明はちょっと足りない状態ですが、小中学生、高校生にはこういうのを見て参考にしてもらったら良いなと思っています。

なぜなら難しい部分(若い人には手が届きにくい部分)のアルゴリズムがわかれば、「RPG を作りたい」というような目標に近づくからです。

「アルゴリズムには著作権がない」と言われているので、このかたちの良さがわかる人は著作権等気にしないで利用してください。

このかたちの価値がどれだけ人にわかってもらえるかはわかりませんし、私自身も後日別のアルゴリズムのほうがいいと言うかもしれませんが。。


(訪問者のどんなニーズと この記事がつながるか)


2020/8/12(水) お盆休み6日目

C言語の型 -[program]

int a;

と宣言したとき、a は -100 とか 200 とか使える状態で、つまり正負のある signed int に、暗黙になる。

だから、

char a;

としたとき、同じように signed char になるのかと思ってプログラムを作っていたら、なんかおかしい。

char の場合は上記のように書くと暗黙に正負のない(=正だけの) unsigned char になるのか…。

char型は文字を示すのに使われるから、基本的に 0~255 (文字番号)だもんな…。

signed にしちゃうと、-128 ~ 127 になってしまうから困るよな…。

だから省略したときは基本的に文字で使うための unsigned にしますよってことか…。

つぶやきでした…。


アセンブラ勉強方法 -[program]

8月9日に頑張って小型液晶ディスプレイ を使えるようにして、昨日今日と勉強を開始できています。

せっかく頑張ってそういう道具を用意したので、どんな感じで勉強しているのか、ちょっと紹介しようと思います。


本はこの本を読んでいます。

たとえば、その本で掲載されているアセンブリ言語のプログラムがこのようにありまして…

普通はこのプログラム↑を「CASL II/COMET II」のシミュレーターソフト(WCASL II)上で入力して、アセンブルし、動かします(下図)。

▼「WCASL II」の画面

このように、プログラムの動きを見ながら本を読み進めていくことができるので、理解しやすく、勉強になります。


しかし、今回は一歩進めて、上記のほか PIC マイコン上でも動かすことにしました。

PIC マイコンの開発環境(MPLAB-IDE)上で PIC 用のアセンブラプログラム(C言語内のインラインアセンブラ)を作成し、コンパイルし、動かします(下図)。

▼「MPLAB-IDE」の画面

大変だった☆

  1. PIC 用の C言語(XC8)で、インラインアセンブラを記述する方法
    プロジェクトのプロパティを開いて、XC8 Global Options 、C standard の C99 を C90 に変更する。
    すると、#asm~#endasm のブロックでインラインアセンブラを記述できるようになる。
    それができなければ、asm( "mov 0x55, DATA \n\r" ); みたいな行をたくさん作らなければならなくて、それは絶対ムリ~と思いました。
    この情報は日本語サイトでは見つけられませんでした。どこの国かわかりませんが、海外でも同じことでだいぶ苦しんでいるようでした。
    #asm not recognised by MPLAB X or XC8 compiler
    このページの2ページ目で、ふらっと現れた人が、「それはこうだぜ!」と教えてくれて「Excellent. Thank you very much」となりました。
    わたしも。
    ちなみにそのアセンブラ部分のコンパイラによる最適化を避けるために、どうやってvolatileを付ければ良いんだ?と悩みますが、
    プロジェクトのプロパティ>XC8 Compiler>Option categories: で Optimization を選ぶと、最適化レベルが0になっていて、もともと最適化はやってない(初期設定)、という事実がわかります。
  2. C言語の部分とアセンブラの部分とで、共通の変数を使う方法
    main() {} の外側で、volatile persistent signed char GR0; のように変数宣言すると、インラインアセンブラ内で、_GR0 とアンダーバーを付けることで同じ変数にアクセスできる。
    (2020年8月15日追記:volatile persistent は必要なく、signed char GR0; でもアクセスできました)
    それができなければ、小型液晶に結果を伝えることができないので、それは絶対必要~と思いました。頑張って液晶用意したんだし。
  3. PIC 用のアセンブラのプログラミングの方法
    いろいろな方々が詳しく説明をしてくれています。
    インターネットがあるから、いろいろ貴重な情報を教えてもらえる…と思いました。

…のように、いろいろ調べて大変でした。

この MPLAB-IDE の画面上で「Make and Program Device」というボタンを押すと、C言語プログラムがコンパイルされて、出来上がった機械語が…


…こういう流れで PIC マイコンへ書き込まれ、マイコンが動作開始します。

動作開始すると、アセンブラプログラムの通りにデータが加工されて、プログラムの最後にはその結果を小型液晶へ送信するようになっています。

(動画がピンボケですが、)

「Asm P93」 アセンブラの本のP93のプログラム、という意味。

プログラムは 「掛け算を行うプログラム」で、4×3の答え、「12」が2行目に表示されています。

そのプログラムリスト

頑張って小型液晶を用意して、こんな感じで勉強できております、というわけです。


(訪問者のどんなニーズと この記事がつながるか)


2020/8/9(日) お盆休み3日目

小型液晶ディスプレイ AQM0802A-RN-GBW -[den]

くぅ~、これだけのことがなかなかできんのですわ~! ↓↓↓

このお盆休み中にプログラミング言語の「アセンブラ」の勉強をしようと思っています。

なぜアセンブラなのかというと、アセンブラを勉強するとコンピューターの基礎を学ぶことができ、それが日ごろのプログラミングのにもなるからです。

私はプログラミングが結構好きなので、もっと自分のその技術を磨いてみると良いと思いました。

電子工作の世界で人気の高い「PIC マイコン」にアセンブラコードを流して(実際はアセンブラコードをアセンブルして機械語になったものを流します)、その動きを実際に見れば効果的に勉強できると思います。

PIC マイコンはそのままではプログラムを動かした結果を見ることができません。パソコンのようにディスプレイが用意されていないんです。

簡単には LED の点滅のしかたでプログラムの結果を判断するという方法もありますが、それだとなかなか大変です。

今回のようにアセンブラの書籍を見ながら勉強し、そのサンプルプログラムを動かすという場合は、LED で結果を知るよりは、文字や数値で結果を見るほうが、勉強もスムーズに進むでしょう。

それで、PIC マイコンで液晶表示を行おうとしています。

(以上は5W1Hを気にした文章です。以降は気にしていない文章です)


本日午後15時ごろ開始して、深夜23時現在、やっとで液晶へ表示することができました。(私のお盆休み中のアセンブラの勉強で使うものなので、いつものPC使用時間制限を行いませんでした)

前にもやったこの液晶表示ですが、同じ液晶ではあったんですが今回はマイコンがちょっと違うんです。


 前回は PIC24H という 16 ビットマイコンを使いました。液晶のために必要な I2C インターフェース(マスター、スレーブ)をハードウェアで搭載していて、大変でしたが表示できました。

 今回は PIC16F88 という 8 ビットマイコンを使いました。このマイコンは、I2C インターフェースのスレーブ(電話機で言う子機)の機能をハードウェアで搭載してますがが、マスター(電話機で言う親機)の機能がありません。

問題の液晶は、I2C のマスターと通信をする「スレーブ」仕様なので、マスターになれない PIC16F88 と小型液晶(AQM0802A)は通信できない、ということになります。そんなバカな。

ところが、インターネット上で探してみると「I2CがなくてもI2C通信する」ということをやっている方がいました。

こちらです。

「I2C をソフトウェアで実装する」というもので、その方のプログラムを「改変しても良い」ということだったので改変して使わせてもらいました。

ありがとう。


最終的な解決は、別の方の こちらのページ で I2C のデータ送信のフォーマットが簡潔に図示されていて、自分の間違いに気づきました。

こちらも、ありがとう。

それで液晶表示に至りました。


なんとかアセンブラの勉強のために道具を用意できたので良かったです。

液晶表示がないと、アセンブラプログラムの結果の数値とか表示できなくて大変だから。


プログラムリスト (MPLAB-IDE XC8用)

旧版プログラムリスト

改善版プログラムリスト(不具合を直して、見た目を少し整えました)

(このプログラムリストは、上表右下の※AリンクのWeb ページに掲載されていたソースコードをもとに私が改造したものです。そのWeb ページで「個人の趣味の範囲であれば自由に使用し、改造も自由に行って下さい」とあったので、改造&掲載させてもらいました。I2CのないマイコンでI2Cを行う方法を探している方もいると思うので。)

プログラムリストはだいぶ荒れている状態ですが、MPLAB-IDEのXC8コンパイラでコンパイル可能を確認しています。


回路図

PIC16F88マイコン、液晶AQM0802A-RN-GBW、それぞれ特に変わったところのない当たり前の配線になっていると思います。液晶の配線がごついですが、説明書(データシート)の通りの配線です。

このマイコンは 5V 電源で動作するので、回路全体も5Vです。

液晶AQM0802A-RN-GBWは3.3Vで動作する製品ですが、最大定格(越えてはいけない電圧)が ~5.5V なので、なんとか5Vで大丈夫みたいです。この液晶はネットでも5V回路で使っている方がいるようです。5.5Vは超えないように気を付けましょう。


調査の内容

以上の作業の中で「なんで動かないのか原因を探るため」や「自分の疑問に応えるため」に、オシロスコープを使って次のような調査を行いました。


◎疑問1 「I2Cのフォーマットのとおりに、信号が出ているだろうか?」

オシロスコープのトリガの機能を用いて、信号が出るタイミングでオシロスコープを停止させ、オシロスコープのハードコピー機能でUSBメモリへ画像を保存し、Excel の図形編集で横につなげました。

こうやってみると、ちゃんとプログラムしたとおりの信号が出ているなと、実感できます。


疑問2「"DRAM"という文字列を出力しているが、画面に出ない。ほんとうにDRAMと出力しているのだろうか?」

同様に画像をつなげました。これが "DRAM" の文字を送っている信号ではないかと思うんですが…

"DRAM" のそれぞれの文字の文字コードを液晶のデータシートを見て調べて、「I2Cのクロック信号の幅」で2進数をそれぞれ並べました。

青ピンが0、赤ピンが1です。

なお、「クロック信号の幅」(赤青ピン同士の間隔)は、疑問1の図の青い信号を見ながらExcelで図形をあてがって間隔を取得しました。

パズルのピースみたいにそれぞれの文字が、信号のどこかに合致するといいんだけど…

おおっ気持ちよく合いました☆

赤い枠のあいだの大きな黄色の山は、液晶がマイコンの指示に対して送った「了解」という意味のackという信号ですね、たぶん!

その黄色の山のせいで、合わないなぁと最初思っていました!


…で、"DRAM" の文字が液晶に出ない原因は、上図の信号では実はダメで、上図はデータ、データ、データ…と続いていますが、正しくは、コントロールデータ、データ。コントロールデータ、データ。コントロールデータ、データ。と送る必要がありました。

そして、コントールデータを付けてもまだダメだったんですが、それはコントロールデータの内容が私のほうで間違っていたからでした。

そこまで直したら、ちゃんと液晶に表示されました。表示されたときは、そりゃぁもう嬉しかったです!

(訪問者のどんなニーズと この記事がつながるか)


2020/8/8(土) お盆休み2日目

歯医者へ行ってきました -[health]

前の仕事をしていたとき、「3か月間の出張でホテル住まいで夜勤(22時ホテル出る、翌8時ホテル戻る)」を2,3度繰り返す等、きつい仕事が多く、虫歯があっても歯医者に行く気になれず放置していました。(本当は、「歯医者に行くのが恥ずかしくて嫌だ」と思っていました…)

それが悪化して、両親から「歯医者に行け」ときつく言われて、今年の1月からずっと歯医者に通っています。


上の奥歯は完全にダメになっていたので、抜歯をしました。

一般に、上の奥歯の根っこは鼻の周辺の空洞に近接している場合が多く、抜歯をしたタイミングで抜歯の穴と鼻の穴が貫通する場合も、たまにあるそうで、私は貫通してしまいました。






口の中の雑菌が鼻に入ると、蓄膿症になってしまい、それは「歯性上顎洞炎」(しせい じょうがくどう えん)と言うのだそうです。

つまり、「歯科における、鼻の空洞の炎症」という意味です。歯科ではない蓄膿症は単に「上顎洞炎」と言うそうです。

それが今年の2月あたりに始まり、今は貫通はふさがり、その炎症も おさまってきていて、早く完治してほしいと思っているところです。


下の奥歯も虫歯になっていて、それは「薬を仕込んでフタをする」という方法で落ち着いていたんですが、この前その歯が 欠けて しまい、中の薬が取れてしまいました。

今日はその歯に金属の かぶせ物をしてもらいました。

最近の歯医者さんは進んでいるようで、その かぶせ物も とても自然な感じがして、下の歯に限っては ひとそろい そろった状態になりました。


ただ、私は体が結構、 昔からの仕事のしすぎで消耗しきっていて、歯も若いころよりもだいぶ もろくなっています。

せっかく綺麗に整えてもらっても、またいつダメになるかという心配があります。


歯医者の帰りに近所の肉屋でその土地の名前が付いた「×××メンチ」というメンチカツ2つ(単価230円)と、常陸牛入りのハンバーグ1つ(単価360円)、せんキャベツ1袋(単価100円)を買いました。

歯をいじった直後だったので、やわらかい食事が良いかなと思って。

メンチカツがだいぶンまかった。ンマンマでした。

(なんでこんなことを書くのかと言うと、毎年お盆休みなど長い休みは、毎日外へ出かけて海など風景写真を撮っているのに、今日は撮り忘れたから。なんらか記録をと。)


(訪問者のどんなニーズと この記事がつながるか)


RPG試作 -[rpg]

今日は、「店」のシステムを作っていました。

ドラクエみたいですけど、あとで自分仕様に作りかえるつもりです。


(訪問者のどんなニーズと この記事がつながるか)


2020/8/6(木) お盆休み前

おそなえもの -[season]

お盆なので、おそなえものを買ってきました。

去年、同じものを購入して、そのとき母が言ったのは、「おそなえもの(お供え物)をすると、亡くなったおばさんたちが喜ぶ」ということでした。

お盆は8月15日に行うもので、祖先の霊をまつる一連の行事のことです。

最近の、私を含めた若い人たちは、こういう行事の作法がわからないひとが多いですよね。

私もおそなえものを買ってきてテーブルの上にドンと置いて、「ハイどーぞ」と言って一人で笑ってる ありさま ですから。


買ってきた物の、かごの裏を見ると、品物のリストがありました。

あなたの産地はありますか?

このように いろいろな品物で もてなしてくれれば、誰でもありがたいと思うことでしょう。

飽食の時代にあっては、これらのたくさんの品物が ありがたいことであることを忘れてしまっています。

こんなにいろいろあるよ。どうかな。うれしいでしょ。という感じです。

誰かをもてなすってこういうことなんでしょうか。

誰かを家に招待するときは、いろいろ用意すると良いのかもしれません。

ウェブページ(ホームページ)もそうなのかな。


(訪問者のどんなニーズと この記事がつながるか)


お盆休みは明日 8/7 から 8/16 まで10日間 -[program]

また長い期間休みなので、今回も何か勉強しようと思います。

同じ本を使ってアセンブラの勉強をしようと思います。

▼この本

今回でもう4~5度目くらいになるのかな。最初に買って読み始めたのは、カラオケの店長業務をやっているとき、仕事を終えて家で布団の中に入り読んでいたのが最初だったかな。小学生の頃に買った SOFTBANK の「MSXマシン語」の本はマシン語=アセンブラなので同じ内容の本だったと思いますが、当時は買っただけで1ページも読まず、本棚に飾っていただけだったので、この写真の本は喜んで読み始めました。

以下はこの本に対して、私がアマゾンに投稿したレビューです。

●気に入ったこと
1980年代では難しい言語として(知識の難度の意味で)高嶺(たかね)の花だったアセンブラ(マシン語)が、私の手元でわかりやすく説明されていること。
PICマイコンやx86CPUなど実務への橋渡しまで気遣っているところ。おかげで目的に役立ちます。
●気に入らないこと
私が持っているのが初版だからだと思いますが、ごく一部ですが文字・記号に誤りがある。(…まぁ些細なことですが)
●総評
私はもう3~4度もこの本を繰り返し読んでいて、今2020年のお盆休みもこの本を読み始めたところです。
1980年代から私はBASICでプログラミングを始めましたが、「アセンブラで高速化」という言葉はよく聞くものの、私には手の届かない、まったく知らない高度な世界の話でした。
最近、PICマイコンでC言語プログラムを逆アセンブルし、私の目的に対して無駄なマシン語命令を省く作業をしていたとき、「もしかしてこれがあの憧れの高速化なのか?」と、気づくに至りました。本書のおかげです。
また、本書によりコンピューターの動きをレジスタやアドレスバスのレベルで知ることができ、そういうアセンブラの低級言語の世界を知っていると、C言語やJavaScriptなどの高級言語でのプログラミングの際に、それがなんとなく前提知識(ふまえ)となって、高級言語でのプログラミングが上達する感じがしました。これは大きいです。
私もいろいろホームページなどで不特定多数の方々に教えようとするのですがうまくいかず、本書の説明が(本として当たり前のことではありますが)とてもわかりやすく、経験に裏付けられた言葉も読むことができ、やっぱり違うよな…と思ったりしています。
他の本も知っている消費者の方にとっては、やや丸みのある内容に見えるかもしれませんが、経験ある方が記してくれた重要な書籍としてお勧めします。

アセンブラを学ぶ意義

今回はこれまでの読み方と違って、PICマイコン(電子回路でC言語やアセンブラなどプログラムを書きこんで動かせるIC )にアセンブラコードを書き込みながら読み進めようと思います。

コンデンサとトランジスタを使った、「DRAM メモリー回路」の記事は現在滞っていますね。(もうすぐDRAMについての次の記事のための部品を購入するところです)

「DRAMメモリーなど、ハードウェアのしくみを知ることが、プログラミングの力を大きく引き上げる」

私はそう言って DRAM のしくみを説明してきました。

「そうなんだ」と思って読んでくれた人もいるかもしれません。

メモリーのしくみを知ることも、アセンブラを勉強することも、どちらも「プログラミングの力を大きく引き上げる」ことにつながると私は思っています。

Java言語を使うシステム開発の現場で、コンデンサとトランジスタというレベルでのメモリーのしくみを知っているからと言って、何か特別な応用が利くというわけではありません。

車を運転するとき、エンジンルームの動きを知っているのと知らないのとでは、本人の車に対するやる気(テンション)が異なる。というものです。やる気がある人はいろいろなものを吸収しやすい状態だと思います。

それが「プログラミングの力を大きく引き上げる」ということです。

また、システムの内側を知っている人ほど、そのシステムに起こったことについて適切な認知を行うことができ、無駄のない処置を行うことができる、というのも、「プログラミングの力を大きく引き上げる」ということになると思います。

車に例えて言うと、車の駆動部で何か音が鳴って故障したら、「ああ、あれかな」とすぐにわかっちゃう状態です。

これらを一言で言うと「つかいこなす」ということです。


技術ばかり学ぶと、人柄が悪くなりそうで心配

現場の仲間や、お客さんが求めるのは高い技術だけでは けっしてなく、人柄が重要な条件になっています。
これはけっこう動かない事実ではないでしょうか。


人柄をおざなりにして、技術ばかり磨くのは、技術を楽しんでいるだけの「あそび」かもしれません。(私自身のことを言っていますが、だれでもそうなりがちだとは思います)

技術を身に付ける人というのは、もしかしたら自分の人柄がどうなっているかということも気にしなければならないのかも しれません。

ゲワイ! おまえが人前で褒められて、うれしそうにしているのが、気に入らない。むかつく」

技術ばかり先行していても、いつのまにか白い目で見られています。

それを解決する糸口の1つとして、その技術は本当に自分だけの力で身に付けたのかどうか、と疑ってみると良いです。技術を楽しむだけではなく、自分の技術のルーツはどうなっているのか真剣になって思いめぐらしたほうが良いかもしれません。
できれば、自分の技術は誰々のおかげによるもので、それが当たり前だ。といつも思っているのが理想ですね。

現場で自分が弱いと思っている人ほど、どうしても高い技術で自分を見直してもらおうと思ってしまいます。もっと自分の弱さや絶対的な前提条件を直視出来たら良いですね(これはあきらめることとは違います。自分(弱さ)を正しく認知することでそれを確かな土台として次へ進むことができます)。
それとも現場はもっとあなたの良いところに気づく必要があるんでしょうか。
「自分の弱さを直視する」というのは、たとえば今 目の前であなたのミスによって人々に迷惑が及んだとします。その状況を「こんなはずじゃない」と思うのは普通ですが、「もしかしてこれが自分なのか」とちょっと思ってみることです。「失敗ばかりしている自分」と思うことができれば、「失敗ばかりしているあなた」という周りが思っていることとのギャップがなくなり、あなたと周囲の人々との共通認識が生まれます。
そこで初めてスムーズな人間関係になると思うんですが、どうでしょうか。
ミスをした後、しばらくミスがないからと言って「これが本来の自分の姿。維持しよう」と思わないことです。もちろんミスがない状態を維持することは大切なことですが、失敗や失敗する自分を忘れないで認識し続けることも必要なんじゃないかと思うんです。
現場はあなたの高い技術を必要としていません。あなたがあなたの弱さを改善しようとしている姿を求めています。もちろん高い技術を学ぶなと言っているのではなく、たくさん学ぶと良いと思います。
(ある人(私)にはあてはまり、ある人にはまったくあてはまらないお話です)

軽いジョークをどれだけ流暢に言えるかというのも意外と重要だったりします。
白い歯を見せて、口角を上げて、「ジョーク、ジョーク」とMr.サタンみたいに言うとか。
ジョークのバリエーションについて、ある程度クリエイティブになれると良いんですけどねぇ…


私はプログラミングが結構好きなので、今年もまたアセンブラを勉強することにしました…。

(ほかにやることがあるような気もするけど。ひまろに頼まれた絵とか)


……で、その1日目として本の「はじめに」のページを読み始めたところですが、私がさきほど述べた「アセンブラを学ぶ意義」について書かれています。

―いまや、パソコンをはじめとするコンピュータ・システムは複雑化・肥大化しており、内部の仕組みを全く知らなくても利用することができるようになっています。それゆえに、コンピュータの中核は、厚いベールに包まれて、本質を垣間見ることさえ難しくなってしまいました。しかし、コンピュータを学ぼうとする読者の皆さんにとって、仕組みの基本を理解することは、必須です。技術は日進月歩で進化していますが、その基本はコンピュータの誕生以来、ほとんど変わっていないからです。ハードウェアと深く結びついたアセンブリ言語を通して、コンピュータの本質に迫っていただきたいと思います」(※「はじめに」から引用)

うーん、さすがに学校の先生であって初心者に対する本もいくつか執筆している方の言葉なので、私と違って説得力がありますね。

「アセンブラでコンピュータの基本が学べますよ」と理解しやすい言葉でおっしゃっています。

「コンピュータの内部で何が行われているのか?その舞台裏を学習することは、よりよいプログラミングを行う糧となることでしょう」(P10から引用)

これは大きい。


(訪問者のどんなニーズと この記事がつながるか)


2020/8/1(土)

コロナウイルス第一波と第二波どちらが急峻? -[health]

NHK のコロナウイルスのデータを見ていて、第一波と第二波はどちらのほうが伸び方が急峻なのか?と疑問が浮かび、簡単に図にしてみました。

グラフは NHK のサイトの「都道府県ごとの感染者数の推移」グラフを、「東京都」、「累計」の設定で表示し、スクリーンショットを撮り、私のほうで傾きを示す太線(青、赤)を追加したものです。


第一波:上図、 第二波:下図



第二波(赤太線)のほうが傾きが急峻になっています。


考察

第一波は角度17度で、第二波は角度28度です。その差は11度です。(用心深く悪いほうにとらえて)第一波を「おおむね15度」、第二波を「おおむね30度」とすれば、約2倍になっています。

つまり第一波よりも第二波のほうが、一日当たりの感染者数が2倍ちかくになっているということです。

ウイルスからすれば、第一波よりも第二波のほうが、「より感染しやすくなっている」ということですかね。

人間からすれば、第一波でいろいろと活動を我慢してきたので、規制を解除したのを機に、うっぷんを晴らすように、人と会って いっぱいしゃべりたかったことをしゃべったりしたってことでしょうか? …だって「規制を解除」というのは「将来ウイルスはなくなっていく」という考えにつながるものだからね…

私も第二波のほうが大きくなるとは予想していなくて、おどろいています。


「1か月ちょっと」というタイムラグがある

規制を解除(5/25)してすぐに感染者が増えるのではなく、潜伏期間があるので、2、3週間後に増え始め、1ヶ月後にグングン増えている形になっています。

人間の心理とウイルスの発生に「1か月ちょっと」というタイムラグがあるみたいです。

たとえば、

このように心理とウイルスのあいだのタイムラグが「1か月ちょっと」あるみたいで、これが正しいとすれば、

今 8/1 はもう一度緊急事態宣言されるのかどうかといったところで、もし宣言されたら「また大変だ」と人々の心が動き、その「1か月ちょっと」、1か月半から2か月後の 9/15 ~ 10/1 ごろ、収束したような感じになる。

…ということでしょうか。しかし人々も慣れてきているので対応が早くなり、もしかしたら 9/5 くらいにはおさまっているかもしれません。

まぁ、先のことが予測できたとしても、それで何ができるかと言うと…、できることはあまりなさそうですが、「情報は力なり」というのもあるので、情報の1つとして知っておくと良いかもしれません。


しかし、このように「誰かが何かを個人的に分析」して、それを読んだ人が合点して、SNSで拡散し、「憶測が流れる」と問題視されている(Bingで検索)ので、私のような素人の話は「そうかもね」程度にとらえてもらうのが良いと思います。

私が言いたかったのは「第一波よりも第二波のほうが、東京都の感染者累計が急峻」という1つだけです。


余談:

…いつものように、こういう他者が作った図(統計グラフ)を、気軽にコピーして自分のWeb ページに掲載するのって良いのかな?と調べてみました。

ネット上の統計データやグラフ、無断転載すると著作権法違反?

グラフは「単なる事実」なので、著作性はないそうです。ただしデータの編集のしかたによっては「編集著作物」になりうるので注意とのこと。

そういうわけで、NHKさんからちょっと図を拝借します。


うちではこんな様子です

なお、私の家族がコロナウイルスについてどんな様子かというと、このまえ父の日でプレゼントを贈ったときに、父(私の住まいから電車で3時間離れた場所に実家がある)から電話がかかってきてプレゼントの話をした他に、「そっちでコロナはどうなんだ?」と聞かれて私は「職場がいろいろ対策をしている。感染者は いまのところ出ていない」というような話をしていました。


(訪問者のどんなニーズと この記事がつながるか)



webappsrcの確認

1. %%com.webapp.src:/webappsrccheck.html%%
と記述した場合

webapps/src/default.cssのスタイル指定が効く
<!DOCTYPE html><!--ESCAPEPROCESS-->

<head>

<script>

function onloadx() {

//一般関数

console.log( "文字列" );

}

function Class1() {

//クラス

console.log( "文字列" );

}

Class1.prototype.method1 = function() {

//メソッド

console.log( "文字列" );

}

</script>

</head>

<body onload="onloadx();" style="">

Hello world!<BR>

</body>

</html>



2. <code>
%%com.webapp.src:/webappsrccheck.html%%
</code>
と記述した場合

このファイルのcodeのスタイル指定が効く
<!DOCTYPE html><!--ESCAPEPROCESS-->

<head>

<script>

function onloadx() {

//一般関数

console.log( "文字列" );

}

function Class1() {

//クラス

console.log( "文字列" );

}

Class1.prototype.method1 = function() {

//メソッド

console.log( "文字列" );

}

</script>

</head>

<body onload="onloadx();" style="">

Hello world!<BR>

</body>

</html>



3.
%%com.webapp.src:/webappsrccheck2.html,/webappsrccheck.html%%
と記述した場合

webapps/src/default.cssのスタイル指定が効く
<!DOCTYPE html><!--ESCAPEPROCESS-->

<head>

<script>

function onloadx() {

//一般関数 コメント変更

console.log( "文字列変更" );

行追加

}

function Class1() {

//クラス コメント変更

console.log( "文字列変更" );

行追加

}

Class1.prototype.method1 = function() {

//メソッド コメント変更

console.log( "文字列変更" );

行追加

}

</script>

</head>

<body onload="onloadx();文字列変更" style="">

Hello world!<BR>

HTML追加

</body>

</html>



4. <code>
%%com.webapp.src:/webappsrccheck2.html,/webappsrccheck.html%%</code>
と記述した場合

このファイルのcodeのスタイル指定が効く
<!DOCTYPE html><!--ESCAPEPROCESS-->

<head>

<script>

function onloadx() {

//一般関数 コメント変更

console.log( "文字列変更" );

行追加

}

function Class1() {

//クラス コメント変更

console.log( "文字列変更" );

行追加

}

Class1.prototype.method1 = function() {

//メソッド コメント変更

console.log( "文字列変更" );

行追加

}

</script>

</head>

<body onload="onloadx();文字列変更" style="">

Hello world!<BR>

HTML追加

</body>

</html>



5. リンクで
src?webappsrccheck.html
と記述した場合

webapps/src/default.cssのスタイル指定が効く
開く

6. リンクで
src?webappsrccheck2.html,webappsrccheck.html
と記述した場合

webapps/src/default.cssのスタイル指定が効く
開く